package com.niit.service.impl;


import com.niit.entity.Cinema;
import com.niit.service.CinemaService;
import com.niit.mapper.CinemaMapper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;


/**
 * MovieService的实现类，提供电影相关业务的处理。
 */
@Service
public class CinemaServiceImpl implements CinemaService {

    /**
     * 注入MovieMapper，用于数据库操作。
     */
    @Resource
    private CinemaMapper CinemaMapper;

    /**
     * 根据电影对象查询所有电影。
     *
     * @param movie 电影对象，包含查询条件。
     * @return 符合条件的所有电影。
     */
    @Override
    public List<Cinema> findAllCinemas() {
        return CinemaMapper.findAllCinemas();
    }

    /**
     * 根据ID查询电影。
     *
     * @param id 电影的唯一标识ID。
     * @return 与ID匹配的电影对象。
     */
    @Override
    public Cinema findCinemaById(Long id) {
        return CinemaMapper.findCinemaById(Math.toIntExact(id));
    }

    /**
     * 根据电影名称查询电影。
     *
     * @param name 电影的名称。
     * @return 与名称匹配的电影对象。
     */
    @Override
    public Cinema findCinemaByName(String name) {
        return CinemaMapper.findCinemaByName(name);
    }

    /**
     * 添加新的电影到数据库。
     *
     * @param movie 待添加的电影对象。
     * @return 添加后的电影对象。
     */
    @Override
    public Cinema addCinema(Cinema cinema) {
        CinemaMapper.addCinema(cinema);
        return cinema;
    }

    /**
     * 更新已存在的电影信息。
     *
     * @param movie 待更新的电影对象。
     * @return 更新后的电影对象。
     */
    @Override
    public int updateCinema(Cinema cinema) {
        return CinemaMapper.updateCinema(cinema);
    }

    /**
     * 根据ID删除电影。
     *
     * @param id 待删除电影的唯一标识ID。
     * @return 被删除的电影对象。
     */
    @Override
    public int deleteCinema(Integer cinema) {
        return CinemaMapper.deleteCinema(cinema);
    }
}

